Search controls using sliders and lightboxes

ABSTRACT

Code is injected into a web page loaded by an Internet browsing application. A search control to accept Internet search input is presented within an Internet browsing application. The search control visually covers at least a portion of a content display area of the Internet browsing application. A slider search control may be presented by automatically sliding the slider search control into the content display area. The presentation of a lightbox search control may include shading, darkening, dimming, blurring, or opaquing the content display area outside of the lightbox search control. The presentation of the search control may occur in response to a period of user inactivity, an amount of page scrolling, or a percentage of page scrolling. The search control receives input corresponding to a search query, a tracking code is combined with the received input, and the combination is communicated to a search engine.

CLAIM OF PRIORITY

This patent application is a Continuation application of, and claims thebenefit of priority under 37 C.F.R. §1.53(b) to, U.S. patent applicationSer. No. 14/566,262 , entitled “SEARCH CONTROLS USING SLIDERS ANDLIGHTBOXES,” filed on Dec. 10, 2014, which is a Continuation applicationof, and which claims the benefit of priority under 37 C.F.R. §1.53(b)to, U.S. patent application Ser. No. 14/151,505 , also entitled “SEARCHCONTROLS USING SLIDERS AND LIGHTBOXES,” filed on Jan. 9, 2014, now U.S.Pat. No. 8,943,036, issued on Jan. 27, 2015, each of which is herebyincorporated by reference herein in their entireties.

BACKGROUND

Major search engines offer incentives to publishers of Internet browsersand Internet browser add-ons who direct user Internet searches to thesearch engine. Most search add-ons require the user to select the searchinput field of the add-on before accepting search input; in other words,most search add-ons are reactive in that they wait for a user toindicate that the user is interested in submitting a search query.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. Various embodiments are illustrated by way of example, andnot limitation, in the figures of the accompanying drawings, in which:

FIG. 1 is a view of an Internet browsing application, in accordance withvarious embodiments;

FIG. 2 is a view of an Internet browsing application with a slidersearch control displayed, in accordance with various embodiments;

FIG. 3 is a timeline diagram illustrating the presenting of a slidersearch control by automatically sliding the slider search control intothe content display area of an Internet browsing application, inaccordance with various embodiments;

FIG. 4 is a view of an Internet browsing application with a lightboxsearch control displayed, in accordance with various embodiments;

FIG. 5 is a system diagram illustrating an implementation of a systemsupporting search controls that use a slider or a lightbox, inaccordance with various embodiments;

FIG. 6 is another example of an Internet browsing application with aslider search control displayed, in accordance with various embodiments;

FIG. 7 is another example of an Internet browsing application with aslider search control displayed, in accordance with various embodiments;

FIG. 8 is another example of an Internet browsing application with alightbox search control displayed, in accordance with variousembodiments;

FIG. 9 is another example of an Internet browsing application with alightbox search control displayed, in accordance with variousembodiments;

FIG. 10 is a flowchart illustrating a method for utilizing a slidersearch control to perform Internet searches, in accordance with variousembodiments;

FIG. 11 is a flowchart illustrating a method for utilizing a lightboxsearch control to perform Internet searches, in accordance with variousembodiments; and

FIG. 12 is a block diagram illustrating a machine in the example form ofa computer system, within which a set or sequence of instructions forcausing the machine to perform any one of the methodologies discussedherein may be executed, in accordance with various embodiments.

DETAILED DESCRIPTION

The following description and the drawings illustrate specificembodiments to enable those skilled in the art to practice them. Otherembodiments may incorporate structural, logical, electrical, process,and other changes. Portions and features of various embodiments may beincluded in, or substituted for, those of other embodiments. Embodimentsset forth in the claims encompass all available equivalents of thoseclaims.

Currently, several web browser plugins exist that provide web users acapability to search from within a web page. However, each of theseplugins has user interface limitations.

ScrollNav (available athttp://codecanyon.net/item/scrollnav-scroll-to-top-sliding-menu-search-wp/5550144)is a plugin for WordPress, designed to improve user navigation in aWordPress page using a circular button that contains various functions,one of which is a search box. The circular button appears towards thebottom of the browser window after the user begins to scroll down theweb page. However, initial display of the circular button does not havethe search box visible, nor does the search box have focus. Thus, a userwanting to use the search box would have to select the portion of thecircular button corresponding to the search box, and then would have toselect the area within the search box to begin typing. Furthermore, theScrollNav plugin allows searching of only WordPress sites, does not“slide” into the visual area of the browser, and does not appear basedon user inactivity. Also, ScrollNav does not suggest search terms basedon previous search queries or upon the content of the currentlydisplayed web page.

OrangeBox (available at http://davidpaulhamilton.net/orangebox/) is alightweight jQuery lightbox plugin that supports content from images,Flickr, Picasa, YouTube, Vimmeo, Viddler, Flash, inline content,iFrames, and PDF's. However, OrangeBox does not suggest search termsbased on previous search queries or upon the content of the currentlydisplayed web page, nor does OrangeBox display after a period of userinactivity.

FIG. 1 is a view of an Internet browsing application 100, in accordancewith various embodiments. In various embodiments, Internet browsingapplication 100 includes an omnibox/address bar 102, content displayarea 106, and a vertical scroll bar 108. In various embodiments,Internet browsing application 100 may optionally include search bar 104.The content display area 106 provides a view of content retrieved by theInternet browsing application. The content display area 106 is boundedby a left edge 112, a right edge 114, a bottom edge 116, and a top edge118. In various embodiments, the Internet browsing application 100 mayinclude a horizontal scroll bar in addition to or instead of verticalscroll bar 108.

In various embodiments, a user of the Internet browsing application 100can perform Internet searches by entering search terms into theomnibox/address bar 102. In various embodiments that include search bar104, a user of the Internet browsing application 100 may performInternet searches by entering search terms into the search bar 104 orthe omnibox/address bar 102. In various embodiments, if the contentdisplayed in content area 106 contains a search box, a user of theInternet browsing application 100 may also perform Internet searches byentering search terms into the search box displayed in content area 106.

In the example Internet browsing application 100 of FIG. 1, the contentdisplay area 106 displays a fictional view of content from the web pagelocated at URL www.apple.com/ipad. The content of this web page istaller than the height of content display area 106, thus vertical scrollbar 108 is enabled, allowing the user to scroll to view additionalcontent of this web page.

FIG. 2 is a view of an Internet browsing application 100 with a slidersearch control 202A displayed, in accordance with various embodiments.In various embodiments, the slider search control 202A includes a textbox 204 and a search button 206. In various embodiments, the slidersearch control 202A may optionally include a close button 208. Invarious embodiments, the slider search control 202A visually covers atleast a portion of content display area 106.

In various embodiments, the slider search control 202A is presented tothe user by automatically sliding the slider search control 202A intothe content display area 106 from at least one of the left edge 112, theright edge 114, the bottom edge 116, and the top edge 118 of the contentdisplay area 106. In various embodiments, the slider search control 202Amay be anchored to at least one of the left edge 112, the right edge114, the bottom edge 116, and the top edge 118 of the content displayarea 106. In FIG. 2, the slider search control 202A is shown as anchoredto right edge 114 and top edge 118 of content display area 106.

In various embodiments, the slider search control 202A is presented tothe user in response to at least one of a period of user inactivity, anamount of page scrolling by the user, and a percentage of page scrollingby the user. In various embodiments, a period of user inactivity can bea predetermined amount of time, during which the user does not scroll,input, select, or otherwise interact with the web page. In variousembodiments, an amount of page scrolling can include a number of linesor columns of pixels scrolled. In various embodiments, an amount of pagescrolling sufficient to trigger presentation of the slider searchcontrol 202A can include scrolling to make visible in content displayarea 106 a particular element of the web page that previously was notvisible in content display area 106. In various embodiments, an amountof page scrolling sufficient to trigger presentation of the slidersearch control 202A can include scrolling to make not visible in contentdisplay area 106 a particular element of the web page that waspreviously visible in content display area 106. In various embodiments,the percentage of page scrolling by the user sufficient to triggerpresentation of the slider search control 202A can be a predeterminedpercentage of the entire web page or a predetermined percentage of aportion of the web page. In FIG. 2, the slider search control 202A isdisplayed because the user sufficiently scrolled the vertical scroll bar108B.

In various embodiments, the slider search control 202A remains visibleafter being presented. In various embodiments, the slider search control202A remains visible until the user closes the slider search control202A, such as by selecting the close button 208 displayed in slidersearch control 202A. In various embodiments, the slider search control202A remains visible until the user scrolls past a certain point in theweb page. For example, the slider search control 202A may remain visibleuntil the user scrolls the web page back to the top. In variousembodiments, the slider search control 202A remains visible until theuser scrolls the web page back to a point, before which the slidersearch control 202A was not displayed. For example, if the slider searchcontrol 202A was configured to be presented upon the user scrolling down50% of the web page, the slider search control 202A may remain visibleuntil the user scrolls up past 50% of the web page.

In various embodiments, the slider search control 202A may be displayedin the content display area 106 of the currently displayed tab ofInternet browsing application 100. In various embodiments, the slidersearch control 202A may be displayed in the content display area 106 ofeach open tab of Internet browsing application 100.

In various embodiments, upon the slider search control 202A beingpresented, text box 204 may have “focus.” By having “focus,” the textbox 204 is ready to receive textual input without the user having toselect text box 204 prior to the textual input.

In various embodiments, the text box 204 can receive textual inputcorresponding to a search query to be communicated to a search engine.For example, the user could enter a search query, such as “Chinesetakeout,” into text box 204 and direct the search query to becommunicated to one or more search engines by either hitting the “Enter”key or by selecting the search button 206. The search query is thencombined with a tracking code and the resulting search request iscommunicated to one or more search engines. The results of the searchrequest may be displayed in content display area 106 of the current tabof the Internet browsing application 100, in content display area 106 ofa new tab of the Internet browsing application 100, or in contentdisplay area 106 of a new window of the Internet browsing application100.

In various embodiments, text box 204 of slider search control 202A maybe prepopulated with one or more search terms; each search term maycorrespond to a search term used in a previous search or to content inthe content display area 106 of the Internet browsing application 100.

In various embodiments, after receiving the search query from text box204, a tracking code is combined with the search query to form a searchrequest. In various embodiments, the tracking code is associated with atleast one of a user, the Internet browsing application 100, a session ofthe Internet browsing application 100, the computer upon which theInternet browsing application 100 is executing, an entity such as acompany or non-profit organization, for whom search loyalty rewards willaccumulate, or another process, device, person, or entity having anaccount. Such tracking codes, and other tracking codes, may also beassociated with a provider of the slider search control 202A asdisclosed herein. A tracking code associated with the provider of theslider search control 202A may be used to track one or more of searchesperformed, links selected, and revenue accumulated resulting from slidersearch control 202A usage. For example, a tracking code combined with asearch query for submission to a particular search engine will be usedby the search engine to credit an account as compensation for routingthe search to that search engine.

In various embodiments, the search request is communicated to at leastone search engine. In various embodiments, search requests are submittedonly to those search engines with which the software publisher of theslider search control 202A has an agreement.

In various embodiments, the text box 204 suggests search terms using“autocomplete” or “word completion”.

FIG. 3 is a timeline diagram 300 illustrating an example of presentingslider search control 202A by automatically sliding the slider searchcontrol 202A into the content display area 106 of an Internet browsingapplication 100 from right edge 114, in accordance with variousembodiments.

At time T1, slider search control 202A begins to slide leftwards intocontent display area 106 from right edge 114.

At time T2, part of text box 204 becomes visible as slider searchcontrol 202A continues to slide leftwards into content display area 106from right edge 114.

At time T3, more of text box 204 becomes visible as slider searchcontrol 202A continues to slide leftwards into content display area 106from right edge 114.

At time T4, text box 204 is completely visible and part of search button206 becomes visible as slider search control 202A continues to slideleftwards into content display area 106 from right edge 114.

At time T5, slider search control 202A has completed its slide leftwardsinto content display area 106 from right edge 114, and both text box 204and search button 206 are completely visible.

Although this example showed slider search control 202A slidingleftwards from the right edge 114, other motions are possible, such assliding rightwards from left edge 112, sliding up from bottom edge 116,sliding downwards from top edge 118, and combinations thereof.Furthermore, although this example used slider search control 202A, thesliding functionality of slider search control 202A is applicable toslider search controls 202B and 202C (see FIGS. 6 and 7 and relatedparagraphs, respectively).

FIG. 4 is a view of an Internet browsing application 100 with a lightboxsearch control 402A displayed, in accordance with various embodiments.In various embodiments, the lightbox search control 402A includes a textbox 404 and a search button 406. In various embodiments, the lightboxsearch control 402A may optionally include a close button 408. Invarious embodiments, the lightbox search control 402A visually covers atleast a portion of content display area 106.

In various embodiments, the presentation of the lightbox search control402A includes drawing user attention to the lightbox search control 402Aand away from the content display area 106 outside of the lightboxsearch control 402A. This may be done by shading, darkening, dimming,blurring, opaquing, or otherwise diminishing the visual impact of thecontent display area 106 outside of the lightbox search control 402A.

In various embodiments, the lightbox search control 402A is presented tothe user in response to a period of user inactivity. In variousembodiments, a period of user inactivity can be a predetermined amountof time, during which the user does not scroll, input, select, orotherwise interact with the web page.

In FIG. 4, the lightbox search control 402A is displayed at the centerof content display area 106. However, in various embodiments, thelightbox search control 402A may be displayed in a number of differentways. For example, the lightbox search control 402A may be displayed asanchored to at least one of the left edge 112, the right edge 114, thebottom edge 116, and the top edge 118 of content display area 106.

In various embodiments, lightbox search control 402A may be displayed inthe content display area 106 of the currently displayed tab of Internetbrowsing application 100. In various embodiments, the lightbox searchcontrol 402A may be displayed in the content display area 106 of eachopen tab of Internet browsing application 100.

In various embodiments, the lightbox search control 402A remains visibleafter being presented. In various embodiments, the lightbox searchcontrol 402A remains visible until the user closes the lightbox searchcontrol 402A, such as by selecting the close button 408 displayed inlightbox search control 402A or by selecting the “ESC” key on a keyboardof the computer.

In various embodiments, upon the lightbox search control 402A beingpresented, text box 404 may have “focus.” By having “focus,” the textbox 404 is ready to receive textual input without the user having toselect text box 404 prior to the textual input.

In various embodiments, the text box 404 can receive textual inputcorresponding to a search query to be communicated to a search engine.For example, the user could enter a search query, such as “Chinesetakeout,” into text box 404 and direct the search query to becommunicated to one or more search engines by either hitting the “Enter”key or by selecting the search button 406.

In various embodiments, text box 404 of lightbox search control 402A maybe prepopulated with one or more search terms; each search term maycorrespond to a search term used in a previous search or to content inthe content display area 106 of the Internet browsing application 100.

In various embodiments, after receiving the search query from text box404, a tracking code is combined with the search query to form a searchrequest. In various embodiments, the tracking code is associated with atleast one of a user, the Internet browsing application 100, a session ofthe Internet browsing application 100, the computer upon which theInternet browsing application 100 is executing, an entity such as acompany or non-profit organization, for whom search loyalty rewards willaccumulate, or another process, device, person, or entity having anaccount. Such tracking codes, and other tracking codes, may also beassociated with a provider of the lightbox search control 402A asdisclosed herein. A tracking code associated with the provider of thelightbox search control 402A may be used to track one or more ofsearches performed, links selected, and revenue accumulated resultingfrom lightbox search control 402A usage. For example, a tracking codecombined with a search query for submission to a particular searchengine will be used by the search engine to credit an account ascompensation for routing the search to that search engine.

In various embodiments, the search request is communicated to at leastone search engine. In various embodiments, search requests are submittedonly to those search engines with which the software publisher of thelightbox search control 402A has an agreement.

In various embodiments, the text box 404 suggests search terms using“autocomplete” or “word completion”.

FIG. 5 is a system diagram illustrating an implementation of a system500 supporting slider and lightbox search controls, in accordance withvarious embodiments. In various embodiments, a system 500 supportingslider and lightbox search controls includes a computing device 502, anetwork 504, a proprietary server 506, and one or more search engines508. In various embodiments, proprietary server 506 is controlled by thepublisher of the slider search control and lightbox search control. Invarious embodiments, network 504 may be a public or private network, acombination of networks, or the Internet. Although proprietary server506 is illustrated in FIG. 5 as a single machine, in various embodimentsthat include proprietary server 506 interconnected via a network 504,the proprietary server 506 may comprise multiple servers workingtogether as a colocated, distributed, or cloud-based system.

In various embodiments, a computing device 502 executes an Internetbrowsing application 100. In various embodiments, a stand-aloneexecutable injects JavaScript into each page loaded by the Internetbrowsing application 100. An add-on, also known as a plug-in or anextension, is software that enhances an Internet browsing application100 and usually cannot execute independently from Internet browsingapplication 100. In various embodiments, an add-on to the Internetbrowsing application 100 injects code, such as JavaScript, into eachpage loaded by the Internet browsing application 100.

In various embodiments, search requests submitted by Internet browsingapplication 100 executing on computing device 502 are communicated to atleast one search engine 508 via network 504. In various embodiments,search requests are submitted only to those search engines 508 withwhich the software publisher of the slider search control and/orlightbox search control has an agreement.

To facilitate updates to the slider and lightbox search controls, asmall snippet of JavaScript code is injected into each page loaded bythe Internet browsing application 100. Upon being executed, theJavaScript code causes the Internet browsing application 100 to send,via network 504, version information of the current slider and/orlightbox search control used in the Internet browsing application 100 toa proprietary server 506 specified in the JavaScript snippet. If theproprietary server 506 determines that the Internet browsing application100 is using a version of the slider and/or lightbox search control thatis out-of-date, the proprietary server 506 will return to the Internetbrowsing application 100 a JavaScript file containing updated JavaScriptcode for a new version of the slider and/or lightbox search controls.The updated JavaScript code for the new version of the slider and/orlightbox search controls is then injected into each page loaded by theInternet browsing application 100. Embodiments of this technique allowthe JavaScript code for the slider and/or lightbox search controls to beupdated as necessary.

FIG. 6 is another example of an Internet browsing application 100 withslider search control 202B displayed, in accordance with variousembodiments. In various embodiments, slider search control 202B mayoptionally include close button 208. Instead of text box 204 and searchbox 206, slider search control 202B includes a set of search queries602. Each search query in the set of search queries 602 includes atleast one search term, and each search term may correspond to a searchterm used in a previous search or to content in the content display area106 of the Internet browsing application 100. For example, in FIG. 6,the set of search queries 602 includes the search queries “Reviews,”“App,” “iPad 2,” “New iPad,” and “Video”. Each search query in the setof search queries 602 is presented as a hyperlink. When a search queryhyperlink is selected, a search request associated with the search queryis communicated to a search engine. The search request includes atracking code in much the same manner as tracking codes are used inslider search control 202A.

Capturing Search Terms

In various embodiments, search keywords submitted outside of the slidersearch control 202B may be captured by the slider search control 202B asfollows. In various embodiments, upon the loading of each web page, theJavaScript code for the slider and/or lightbox search control checks theURL of the web page to determine whether the web page belongs to asearch engine website. In various embodiments, the URL of the currentweb page is determined by inspecting the ‘window.location’ object thatis common to all major Internet browsing applications 100. The value ofthe ‘window.location’ object may then be compared to a ‘search enginelist’ that contains the search engines, from which the JavaScript codefor the slider and/or lightbox search control can capture search terms.

In various embodiments, for each search engine, the ‘search engine list’contains a URL parameter that is used by that search engine to store auser's search query when the user's Internet browsing application 100submits a search request to that search engine. The JavaScript code forthe slider and/or lightbox search controls can use this parameter toparse the URL that is generated from a search request to determine thesearch query for that search request.

As an example, user A goes to yahoo.com to perform a search for ‘iPhonecase’. When user A submits the search query ‘iPhone case’ to the Yahoo!search engine, the Internet browsing application 100 submits a searchrequest in the form of an HTTP GET request to the Yahoo! search engine.The Yahoo! search engine redirects Internet browsing application 100 toa web page containing search results for ‘iPhone case’. The URL for thesearch results web page, such as“http://search.yahoo.com/search;_ylt=Avl6e_yKwMnNvBcaijYVkmbvZx4?p=iphone+case&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-901” contains variousparameters. The search query ‘iPhone case’ is stored as ‘iphone+case’ inthe ‘p’ parameter. The JavaScript code for the slider and/or lightboxsearch controls detects when user A is on the yahoo.com by inspectingthe ‘window.location’ object and captures the value of the ‘p’parameter.

Major search engines rarely change the parameters used in HTTP GETrequest URLs, which makes this a reliable way of capturing a user'ssearch query. If a search engine were to change the parameter used tostore search queries, the ‘search engine list’ contained in the remoteJavaScript file could be updated accordingly, and the user's Internetbrowsing application 100 would receive the updated JavaScript code thenext time a check is made for an updated version of the JavaScript code(see FIG. 5 and related paragraphs).

In various embodiments, search queries could be captured by usingJavaScript selectors to find the search input element of the web pagecontaining the search engine's results. Generally, a search results pagecontains only one input element. However, the HTML structure of a searchresults page could change more often than the GET request parameter.

Storing Search Terms

After capturing the user's search query, the search query may be storedso that it may be used by the slider and/or lightbox search controls.

Storing Search Terms Using Web Storage

In various embodiments, a search query may be stored in the web storageof the user's Internet browsing application 100. In HTML 5, web pagescan store data on an Internet browsing application 100 using either thelocalStorage′ object or the ‘sessionStorage’ object. Data stored in the‘localStorage’ object does not expire, whereas data stored in the‘sessionStorage’ object expires at the end of the session of theInternet browsing application 100. Data stored in the ‘localStorage’ or‘sessionStorage’ objects is stored as key/value pairs.

Data stored in the ‘localStorage’ object or the ‘sessionStorage’ objectcan only be accessed by the same origin, i.e., the same web site. Toenable access to the web storage objects from other origins, a commonpattern known as “Cross-Origin Messaging” may be used. The JavaScriptcode may insert a hidden iframe element into each web page. The sourceattribute, known as ‘src’, may be set to the domain of the remote serverhousing the JavaScript file for the slider and/or lightbox searchcontrols. The iframe element contains JavaScript code that listens formessages from the parent window object of the Internet browsingapplication 100. The JavaScript file (on the remote server) uses an HTMLmethod called ‘postMessage’ to send a message to the iframe JavaScriptcode to get, set, or remove a value from the web storage in the iframe.

Storing Search Terms Using Cookies

In various embodiments, the JavaScript code stores search queries usingcookies. The cookies can be either session cookies or persistentcookies. Using web storage, rather than cookies, is preferable because(1) the data is not sent with each request, (2) cookies set by an iframemay be considered third-party cookies, which may be blocked by theuser's Internet browsing application 100, and (3) much more data may bestored in web storage than in cookies.

Storing Search Terms Using Server-Side Storage

A number of methods exist for storing search queries on a server ratherthan on the user's computer. In various embodiments, the inserted iframeelement may make an XHR request to the server, which may then store thedata.

In various embodiments, a script element is inserted into the JavaScriptcode. The script element has the ‘src’ attribute set to the URL of theserver. When executed, this script element will make an HTTP GET requestto the server and pass any parameters set in the ‘src’ URL to theserver, allowing the server to read and store these parameters for lateruse.

Either method of server-side storage may require an identifier to bepassed along with each request, so that the server knows which user issubmitting the request. Two common methods for storing such identifiersare cookies and web storage.

FIG. 7 is another example of an Internet browsing application 100 with aslider search control 202C displayed, in accordance with variousembodiments. In various embodiments, slider search control 202C mayoptionally include close button 208. In addition to text box 204 andsearch box 206, slider search control 202C includes a set of searchqueries 602. Thus, the appearance and functionality of slider searchcontrol 202C may be considered a combination of those of slider searchcontrols 202A and 202B.

FIG. 8 is another example of an Internet browsing application 100 with alightbox search control 402B displayed, in accordance with variousembodiments. In various embodiments, lightbox search control 402B mayoptionally include close button 408. Instead of text box 404 and searchbox 406, lightbox search control 402B includes a set of search queries802, similar in appearance and functionality to the set of searchqueries 602 of slider search control 202B, and lightbox search control402B may capture and store search terms in much the same ways as slidersearch control 202B (see FIG. 6 and related paragraphs).

FIG. 9 is another example of an Internet browsing application 100 with alightbox search control 402C displayed, in accordance with variousembodiments. In various embodiments, lightbox search control 402C mayoptionally include close button 408. In addition to text box 404 andsearch box 406, lightbox search control 402C includes a set of searchqueries 802. Thus, the appearance and functionality of lightbox searchcontrol 402C may be considered a combination of those of lightbox searchcontrols 402A and 402B.

FIG. 10 is a flowchart illustrating a method 1000 for utilizing a slidersearch control to perform Internet searches, in accordance with variousembodiments.

At 1002, code is injected into a web page loaded by an Internet browsingapplication.

At 1005, a search control is presented within an Internet browsingapplication, the search control to accept Internet search input to becommunicated to a search engine, the search control visually covering atleast a portion of a view of a content display area of the Internetbrowsing application, the content display area to provide a view ofcontent retrieved by the Internet browsing application, the contentdisplay area having a left edge, a right edge, a bottom edge, and a topedge, the presenting of the search control performed by automaticallysliding the search control into the content display area from at leastone of the left edge, the right edge, the bottom edge, and the top edgeof the content display area, the presenting of the search controloccurring in response to at least one of a period of user inactivity, anamount of page scrolling by the user, and a percentage of page scrollingby the user.

At 1010, input in the search control is received, the inputcorresponding to a search query to be transmitted communicated to asearch engine.

At 1015, a tracking code is combined with the input received by thesearch control to form a search request, the tracking code associatedwith at least one of a user, the Internet browsing application, asession of the Internet browsing application, and an identifier, such asa company ID.

At 1020, the search request is communicated to a search engine.

In various embodiments, the method 1000 is implemented by an Internetbrowser add-on. In various embodiments, the Internet browser add-on isbundled with other software for distribution.

FIG. 11 is a flowchart illustrating a method 1100 for utilizing alightbox search control to perform Internet searches, in accordance withvarious embodiments.

At 1102, code is injected into a web page loaded by an Internet browsingapplication.

At 1105, a search control is presented within an Internet browsingapplication, the search control to accept Internet search input to becommunicated to a search engine, the search control visually covering atleast a portion of a content display area of the Internet browsingapplication, the content display area to provide a view of contentretrieved by the Internet browsing application, the presenting of thesearch control including at least one of darkening and opaquing thecontent display area outside of the search control, the presenting ofthe search control occurring in response to a period of user inactivity.

At 1110, input in the search control is received, the inputcorresponding to a search query to be communicated to a search engine.

At 1115, a tracking code is combined with the input received by thesearch control to form a search request, the tracking code associatedwith at least one of a user, the Internet browsing application, asession of the Internet browsing application, and an identifier, such asa company ID.

At 1120, the search request is communicated to a search engine.

In various embodiments, the method 1100 is implemented by an Internetbrowser add-on. In various embodiments, the Internet browser add-on isbundled with other software for distribution.

FIG. 12 illustrates a block diagram of an example machine 1200 uponwhich any one or more of the techniques (e.g., methodologies) discussedherein may be executed, in accordance with various embodiments. Inalternative embodiments, the machine 1200 may operate as a standalonedevice or may be connected (e.g., networked) to other machines. In anetworked deployment, the machine 1200 may operate in the capacity of aserver machine, a client machine, or both in server-client networkenvironments. In an example, the machine 1200 may act as a peer machinein peer-to-peer (P2P) (or other distributed) network environment. Themachine 1200 may be a personal computer (PC), a tablet PC, a set-top box(STB), a personal digital assistant (PDA), a mobile telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein, such as cloud computing, software as aservice (SaaS), other computer cluster configurations.

Examples, as described herein, may include, or may operate on, logic ora number of components, modules, or mechanisms. Modules are tangibleentities (e.g., hardware) capable of performing specified operations andmay be configured or arranged in a certain manner. In an example,circuits may be arranged (e.g., internally or with respect to externalentities such as other circuits) in a specified manner as a module. Inan example, the whole or part of one or more computer systems (e.g., astandalone, client or server computer system) or one or more hardwareprocessors may be configured by firmware or software (e.g.,instructions, an application portion, or an application) as a modulethat operates to perform specified operations. In an example, thesoftware may reside on a machine-readable medium. In an example, thesoftware, when executed by the underlying hardware of the module, causesthe hardware to perform the specified operations.

Accordingly, the term “module” is understood to encompass a tangibleentity, be that an entity that is physically constructed, specificallyconfigured (e.g., hardwired), or temporarily (e.g., transitorily)configured (e.g., programmed) to operate in a specified manner or toperform part or all of any operation described herein. Consideringexamples in which modules are temporarily configured, each of themodules need not be instantiated at any one moment in time. For example,where the modules comprise a general-purpose hardware processorconfigured using software, the general-purpose hardware processor may beconfigured as respective different modules at different times. Softwaremay accordingly configure a hardware processor, for example, toconstitute a particular module at one instance of time and to constitutea different module at a different instance of time.

Machine (e.g., computer system) 1200 may include a hardware processor1202 (e.g., a central processing unit (CPU), a graphics processing unit(GPU), a hardware processor core, or any combination thereof), a mainmemory 1204 and a static memory 1206, some or all of which maycommunicate with each other via an interlink (e.g., bus) 1208. Themachine 1200 may further include a display unit 1210, an alphanumericinput device 1212 (e.g., a keyboard), and a user interface (UI)navigation device 1214 (e.g., a mouse). In an example, the display unit1210, input device 1212 and UI navigation device 1214 may be a touchscreen display. The machine 1200 may additionally include a storagedevice (e.g., drive unit) 1216, a signal generation device 1218 (e.g., aspeaker), a network interface device 1220, and one or more sensors 1221,such as a global positioning system (GPS) sensor, compass,accelerometer, or other sensor. The machine 1200 may include an outputcontroller 1228, such as a serial (e.g., universal serial bus (USB),parallel, or other wired or wireless (e.g., infrared (IR), near fieldcommunication (NFC), etc.) connection to communicate or control one ormore peripheral devices (e.g., a printer, card reader, etc.).

The storage device 1216 may include a machine-readable medium 1222 onwhich is stored one or more sets of data structures or instructions 1224(e.g., software) embodying or utilized by any one or more of thetechniques or functions described herein. The instructions 1224 may alsoreside, completely or at least partially, within the main memory 1204,within static memory 1206, or within the hardware processor 1202 duringexecution thereof by the machine 1200. In an example, one or anycombination of the hardware processor 1202, the main memory 1204, thestatic memory 1206, or the storage device 1216 may constitutemachine-readable media.

Although the machine readable medium 1222 is illustrated as a singlemedium, the term “machine readable medium” may include a single mediumor multiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) configured to store the one or moreinstructions 1224.

The term “machine-readable medium” may include any medium that iscapable of storing, encoding, or carrying instructions for execution bythe machine 1200 and that cause the machine 1200 to perform any one ormore of the techniques of the present disclosure, or that is capable ofstoring, encoding or carrying data structures used by or associated withsuch instructions. Non-limiting machine-readable medium examples mayinclude solid-state memories, and optical and magnetic media. In anexample, a massed machine-readable medium comprises a machine-readablemedium with a plurality of particles having resting mass. Specificexamples of massed machine-readable media may include: non-volatilememory, such as semiconductor memory devices (e.g., ElectricallyProgrammable Read-Only Memory (EPROM), Electrically ErasableProgrammable Read-Only Memory (EEPROM)) and flash memory devices;magnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks.

The instructions 1224 may further be transmitted or received over acommunications network 1226 using a transmission medium via the networkinterface device 1220 utilizing any one of a number of transferprotocols (e.g., frame relay, internet protocol (IP), transmissioncontrol protocol (TCP), user datagram protocol (UDP), hypertext transferprotocol (HTTP), etc.). Example communication networks may include alocal area network (LAN), a wide area network (WAN), a packet datanetwork (e.g., the Internet), mobile telephone networks (e.g., cellularnetworks), Plain Old Telephone (POTS) networks, and wireless datanetworks (e.g., Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standards known as Wi-Fi®, IEEE 802.16 family ofstandards known as WiMax®), IEEE 802.15.4 family of standards,peer-to-peer (P2P) networks, among others. In an example, the networkinterface device 1220 may include one or more physical jacks (e.g.,Ethernet, coaxial, or phone jacks) or one or more antennas to connect tothe communications network 1226. In an example, the network interfacedevice 1220 may include a plurality of antennas to wirelesslycommunicate using at least one of single-input multiple-output (SIMO),multiple-input multiple-output (MIMO), or multiple-input single-output(MISO) techniques. The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine 1200, and includesdigital or analog communications signals or other intangible medium tofacilitate communication of such software.

Additional Notes & Examples

The following examples pertain to further embodiments.

Example 1 may include subject matter (such as a method, means forperforming acts, or computer-readable storage including instructionsthat, when performed by a computer cause the computer to performs acts)comprising: injecting code into each web page loaded by an Internetbrowsing application, the injected code causing the Internet browsingapplication to: present a search control to accept Internet search inputto be communicated to a search engine, the search control visuallycovering at least a portion of a content display area of the Internetbrowsing application, the content display area to provide a view ofcontent retrieved by the Internet browsing application, the presentingof the search control including at least one of shading, darkening,dimming, blurring, or opaquing the content display area outside of thesearch control, the presenting of the search control occurring inresponse to a period of user inactivity; receiving input in the searchcontrol, the input corresponding to a search query to be communicated toa search engine; combining a tracking code with the input received bythe search control to form a search request, the tracking codeassociated with at least one of a user, the Internet browsingapplication, a session of the Internet browsing application, and anidentifier; and communicating the search request to a search engine.

In Example 2, the subject matter of Example 1 may include, wherein thesearch control includes a text box pre-populated with a search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application.

In Example 3, the subject matter of any of Examples 1-2 may include,wherein the text box suggests search terms using autocomplete.

In Example 4, the subject matter of any of Examples 1-3 may include,wherein the search control includes a set of search queries, each searchquery comprising at least one search term, each search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application, each searchquery presented as a hyperlink, which, upon being selected, causes asearch request associated with the search query to be communicated to asearch engine.

In Example 5, the subject matter of any of Examples 1-4 may include,capturing search terms communicated as part of a search query to asearch engine, the input of the search terms occurring outside of thesearch control.

In Example 6, the subject matter of any of Examples 1-5 may include,wherein the injected code is injected by at least one of an add-on tothe Internet browsing application and a stand-alone application.

Example 7 includes an Internet browser add-on implementing the subjectmatter of any of Examples 1-6.

Example 8 includes the Internet browser add-on of Example 7, wherein theInternet browser add-on is bundled with other software for distribution.

Example 9, may include, or may optionally be combined with the subjectmatter of any one of Examples 1-8 to include, subject matter (such as adevice, apparatus, or a system) comprising: a processor, a memorydevice, and a network interface device operatively coupled via a bus;instructions stored in the memory device and executable on the processorto: inject code into each web page loaded by an Internet browsingapplication, the injected code causing the Internet browsing applicationto: present a search control to accept Internet search input to becommunicated to a search engine, the search control visually covering atleast a portion of a content display area of the Internet browsingapplication, the content display area to provide a view of contentretrieved by the Internet browsing application, the presenting of thesearch control including at least one of shading, darkening, dimming,blurring, or opaquing the content display area outside of the searchcontrol, the presenting of the search control occurring in response to aperiod of user inactivity; receive input in the search control, theinput corresponding to a search query to be transmitted to a searchengine; combine a tracking code with the input received by the searchcontrol to form a search request, the tracking code associated with atleast one of a user, the Internet browsing application, a session of theInternet browsing application, and an identifier; and transmit, via anetwork interface device, the search request to a search engine.

In Example 10, the subject matter of Example 9 may include, wherein thesearch control includes a text box pre-populated with a search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application.

In Example 11, the subject matter of any of Examples 9-10 may include,wherein the text box suggests search terms using autocomplete.

In Example 12, the subject matter of any of Examples 9-11 may include,wherein the search control includes a set of search queries, each searchquery comprising at least one search term, each search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application, each searchquery presented as a hyperlink, which, upon being selected, causes asearch request associated with the search query to be transmitted to asearch engine.

In Example 13, the subject matter of any of Examples 9-12 may includefurther instructions that are executable by the processor to cause theinjected code to: capture search terms transmitted as part of a searchquery to a search engine, the input of the search terms occurringoutside of the search control.

In Example 14, the subject matter of any of Examples 9-13 may include,wherein the injected code is injected by at least one of an add-on tothe Internet browsing application and a stand-alone application.

The above detailed description includes references to the accompanyingdrawings, which form a part of the detailed description. The drawingsshow, by way of illustration, specific embodiments that may bepracticed. These embodiments are also referred to herein as “examples.”Such examples can include elements in addition to those shown ordescribed. However, the present inventors also contemplate examples inwhich only those elements shown or described are provided. Moreover, thepresent inventors also contemplate examples using any combination orpermutation of those elements shown or described (or one or more aspectsthereof), either with respect to a particular example (or one or moreaspects thereof), or with respect to other examples (or one or moreaspects thereof) shown or described herein.

All publications, patents, and patent documents referred to in thisdocument are incorporated by reference herein in their entirety, asthough individually incorporated by reference. In the event ofinconsistent usages between this document and those documents soincorporated by reference, the usage in the incorporated reference(s)should be considered supplementary to that of this document; forirreconcilable inconsistencies, the usage in this document controls.

In this document, the terms “a” or “an” are used, as is common in patentdocuments, to include one or more than one, independent of any otherinstances or usages of “at least one” or “one or more.” In thisdocument, the term “or” is used to refer to a nonexclusive or, such that“A or B” includes “A but not B,” “B but not A,” and “A and B,” unlessotherwise indicated. In the appended claims, the terms “including” and“in which” are used as the plain-English equivalents of the respectiveterms “comprising” and “wherein.” Also, in the following claims, theterms “including” and “comprising” are open-ended, that is, a system,device, article, or process that includes elements in addition to thoselisted after such a term in a claim are still deemed to fall within thescope of that claim. Moreover, in the following claims, the terms“first,” “second,” and “third,” etc., are used merely as labels, and arenot intended to impose numerical requirements on their objects.

The above description is intended to be illustrative, and notrestrictive. For example, the above-described examples (or one or moreaspects thereof) may be used in combination with each other. Otherembodiments can be used, such as by one of ordinary skill in the artupon reviewing the above description. The Abstract is to allow thereader to quickly ascertain the nature of the technical disclosure, forexample, to comply with 37 C.F.R. §1.72(b) in the United States ofAmerica. It is submitted with the understanding that it will not be usedto interpret or limit the scope or meaning of the claims. Also, in theabove Detailed Description, various features may be grouped together tostreamline the disclosure. This should not be interpreted as intendingthat an unclaimed disclosed feature is essential to any claim. Rather,inventive subject matter may lie in less than all features of aparticular disclosed embodiment. Thus, the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment. The scope of the embodiments should bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A non-transitory machine-readable storage medium,with instructions stored thereon, which when executed by at least oneprocessor of a computing device, configure the computing device to:cause an Internet browsing application to load web page code which, whenexecuted by the Internet browsing application, causes the Internetbrowsing application to: present a search control to accept Internetsearch input to be communicated to at least one search engine capable ofreceiving a search request and outputting search results, the searchcontrol visually covering at least a portion of a content display areaof the Internet browsing application, the content display area being ofa first size and the portion being of a second size smaller than thefirst size, the content display area to provide a view of contentretrieved by the Internet browsing application, the content display areahaving a left edge, a right edge, a bottom edge, and a top edge, thepresentation of the search control performed by automatically slidingthe search control into the content display area from at least one ofthe left edge, the right edge, the bottom edge, and the top edge of thecontent display area, the presentation of the search control to occur inresponse to at least one of a period of user inactivity, an amount ofpage scrolling by the user, and a percentage of page scrolling by theuser; receive input in the search control, the input corresponding tothe search request to be communicated to the at least one search engine;and communicate the search request to the at least one search engine. 2.The non-transitory machine-readable storage medium of claim 1, whereinthe search control includes a text box pre-populated with a search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application.
 3. Thenon-transitory machine-readable storage medium of claim 2, wherein thetext box suggests search terms using autocomplete.
 4. The non-transitorymachine-readable storage medium of claim 1, wherein the search controlincludes a set of search queries, each search query comprising at leastone search term, each search term corresponding to at least one of aprevious search and content in the content display area of the Internetbrowsing application, each search query presented as a hyperlink, which,upon being selected, causes a search request associated with the searchquery to be communicated to the at least one search engine.
 5. Thenon-transitory machine-readable storage medium of claim 1, wherein theweb page code, when executed by the Internet browsing application,further causes the Internet browsing application to: capture searchterms communicated as part of a search query to a search engine, theinput of the search terms occurring outside of the search control.
 6. Amethod performed by a computing device, the method comprising: executingan Internet browsing application to load web page code which, whenexecuted by the Internet browsing application, causes the Internetbrowsing application to perform operations comprising: presenting asearch control to accept Internet search input to be communicated to atleast one search engine capable of receiving a search request andoutputting search results, the search control visually covering at leasta portion of a content display area of the Internet browsingapplication, the content display area being of a first size and theportion being of a second size smaller than the first size, the contentdisplay area to provide a view of content retrieved by the Internetbrowsing application, the content display area having a left edge, aright edge, a bottom edge, and a top edge, the presenting of the searchcontrol performed by automatically sliding the search control into thecontent display area from at least one of the left edge, the right edge,the bottom edge, and the top edge of the content display area, thepresenting of the search control occurring in response to at least oneof a period of user inactivity, an amount of page scrolling by the user,and a percentage of page scrolling by the user; receiving input in thesearch control, the input corresponding to the search request to becommunicated to the at least one search engine; and communicating thesearch request to the at least one search engine.
 7. The method of claim6, wherein the search control includes a text box pre-populated with asearch term corresponding to at least one of a previous search andcontent in the content display area of the Internet browsingapplication.
 8. The method of claim 7, wherein the text box suggestssearch terms using autocomplete.
 9. The method of claim 6, wherein thesearch control includes a set of search queries, each search querycomprising at least one search term, each search term corresponding toat least one of a previous search and content in the content displayarea of the Internet browsing application, each search query presentedas a hyperlink, which, upon being selected, causes a search requestassociated with the search query to be communicated to the at least onesearch engine.
 10. The method of claim 6, wherein the web page code,when executed by the Internet browsing application, further causes theInternet browsing application to: capture search terms communicated aspart of a search query to a search engine, the input of the search termsoccurring outside of the search control.
 11. A system, comprising: aprocessor, a memory device, and a network interface device operativelycoupled via a bus; and instructions stored in the memory device andexecutable by the processor to: execute an Internet browsing applicationto load web page code which, when executed by the Internet browsingapplication, causes the Internet browsing application to: present asearch control to accept Internet search input to be communicated to atleast one search engine capable of receiving a search request andoutputting search results, the search control visually covering at leasta portion of a content display area of the Internet browsingapplication, the content display area being of a first size and theportion being of a second size smaller than the first size, the contentdisplay area to provide a view of content retrieved by the Internetbrowsing application, the content display area having a left edge, aright edge, a bottom edge, and a top edge, the presenting of the searchcontrol performed by automatically sliding the search control into thecontent display area from at least one of the left edge, the right edge,the bottom edge, and the top edge of the content display area, thepresenting of the search control occurring in response to at least oneof a period of user inactivity, an amount of page scrolling by the user,and a percentage of page scrolling by the user; receive input in thesearch control, the input corresponding to the search request to betransmitted to the at least one search engine; and transmit, via thenetwork interface device, the search request to the at least one searchengine.
 12. The system of claim 11, wherein the search control includesa text box pre-populated with a search term corresponding to at leastone of a previous search and content in the content display area of theInternet browsing application.
 13. The system of claim 12, wherein thetext box suggests search terms using autocomplete.
 14. The system ofclaim 11, wherein the search control includes a set of search queries,each search query comprising at least one search term, each search termcorresponding to at least one of a previous search and content in thecontent display area of the Internet browsing application, each searchquery presented as a hyperlink, which, upon being selected, causes asearch request associated with the search query to be transmitted to theat least one search engine.
 15. The system of claim 11, wherein the webpage code, when executed by the Internet browsing application, furthercauses the Internet browsing application to: capture search termstransmitted as part of a search query to a search engine, the input ofthe search terms occurring outside of the search control.